home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 November / CHIP Kasım 1998.iso / emulators / nintendo / tnes2047dos.exe / TNES.TXT < prev   
Text File  |  1998-01-01  |  10KB  |  217 lines

  1.  
  2.               ===========================================
  3.               TNES - The 32 bit Nintendo Emulator for DOS
  4.               ===========================================
  5.  
  6.               Written by Paul Robson (autismuk@aol.com)
  7.  
  8. This is a freeware application. Please report bugs to the above email
  9. address.
  10.  
  11. Supports :
  12.  
  13.  - All the usual hardware of the NES.
  14.  - Multiple VGA Screen Resolutions [including a better 'shrunk' screen]
  15.  - Can support 2 Players (with redefinable keys)
  16.  - Sound via an Adlib card. (Ensoniq ? Pah !)
  17.  - Good support for Mappers 0,1,2,3,4,7,9 and 11
  18.  - Easy to add new mappers to program - nice modular design.
  19.  - 4 Button Joystick support (1 player only)
  20.  - Simple but useful Debugger
  21.  - Game Genie Codes
  22.  - Game Snapshots (up to 8 per cartridge)
  23.  - Autofire.
  24.  
  25. What doesn't work at the moment :
  26.  
  27.  - the Timing isn't perfect - still working on this (all assistance welcome)
  28.  - 1Mb Mapper 1 Carts aren't supported (e.g. DW4, see above)
  29.  - some of the less common mappers aren't implemented (see above)
  30.  - the DMA sound channel isn't implemented. Who cares ?
  31.  - sprite priorities on Mapper 4 (e.g. SMB3) (see above)
  32.  - snapshots have problems on Zelda 1 for some reason & can be generally off.
  33.  - sound can be ropey on some carts, great on others, not really attacked
  34.    this problem much.
  35.  
  36. This is something I've wanted to do for ages - despite its popularity at the
  37. time NESA never was that great a piece of programming - except for compactness.
  38. I always thought I could do something better given the appropriate (Y0shi's !)
  39. documentation, and here it is. The 32 bit version does most of the things
  40. the original NESA didn't. (you know, like run NES games :) )
  41.  
  42. When I've researched and fixed it a bit more, (and parodius.com is back
  43. online) I'll feed what I've learned back to y0shi... there's a fair bit
  44. that I think is wrong. The source code will be released for those who are
  45. interested - there's enough information for those who don't understand
  46. how MMC2 works for example.
  47.  
  48. Special thanks go to the following people :-
  49.  
  50.  - Marat Fayzullin, for the original NES document.
  51.  - Jeremy Chadwick (aka y0shi) for the improved NES document.
  52.  - The long list of people who contributed to the above documents.
  53.  - Jonathon Turner for the (currently unavailable :( ) EPR.
  54.  - Jim Pragit of Emunews.
  55.  - Michael Tippich (crazy name, crazy DOS extender)
  56.  
  57. This is written using the inestimable WDOSX (0.94) as used in all my other
  58. 32 bit emulators. A truly excellent piece of work from Michael Tippich -
  59. the only problem is the emulators don't currently work on Windows NT. Still
  60. if you have an NT machine you are probably supposed to be doing some work
  61. on it, and shouldn't be playing Super Mario anyway.
  62.  
  63. It's still fairly compact (but not as small as NESA) and still fairly
  64. quick (but not as quick as NESA). It does however, do things like mapping
  65. properly. (NESA bodged it). You can speed it up with all the usual hacks
  66. beloved of emulator authors, cutting out frames, reducing the cycles/scan
  67. line, all that sort of thing.
  68.  
  69. It will need more memory than NESA though, probably about 4Mb. It is
  70. compatible with Windows 95. It doesn't contain any references to
  71. Satan either, or blooded hands or anything like that, for those
  72. that worry about such things. It doesn't have a GUI either. Unless you
  73. are still using DOS I'd recommend associating file type .NES with
  74. TNES.EXE in Windows, and setting the working directory to the
  75. directory with TNES.INI in it.
  76.  
  77. Internally, its tidy rather than clever - it doesn't use registers for
  78. optimisation, or cache anything. I cache tiles later if I feel so inclined.
  79. Or I may not.
  80.  
  81. Setup can be done by editing TNES.INI - this file is not required
  82. however. It allows you to set various emulation parameters and game
  83. controls either globally or for individual games. Further details are
  84. given in the systems TNES.INI
  85.  
  86. Please do NOT email me asking where to find ROM images for the emulator.
  87.  
  88. Files
  89. =====
  90.  
  91. TNES.EXE        Executable file
  92. TNES.TXT        This file
  93. KEYS.INC        List of scan codes for keys (note: this is from my
  94.                 source so 4Ch needs to become $4C for TNES.INI)
  95. TNES.INI        Optional configuration file
  96. *.NES           iNes format NES cartridges
  97. *.SAV           Battery backup files for NES cartridges that have them.
  98. *.NSx           Saved Game States (x = 0 thru 7)
  99.  
  100. Keys (the game keys are redefinable in TNES.INI)
  101. ================================================
  102.  
  103.         Cursor Keys     Direction Keys, Player 1
  104.         Ctrl            A
  105.         Alt             B
  106.         Tab             Select  [Joystick button C]
  107.         Return          Start   [Joystick button D]
  108.  
  109. Player 2 keys are not defined by default. To play 2 players you will need
  110. to change TNES.INI.
  111.  
  112. Most of the following keys only operate in run-mode,not debug mode,
  113. (indicated by a small 'D' at the top left of the screen). You shouldn't
  114. really be playing about with the Debugger anyway....
  115.                 
  116.         ESC             Exit
  117.         F1              Reset
  118.         F2              Switch VBI Scanline between 232,240,0 and 8
  119.                         (sometimes helps with timing problems - e.g.
  120.                          neatens Castlevania and Zelda 2 (press twice))
  121.         F3              Toggle Autofire On/Off
  122.         F4              Turn Sound Channels on or off individually.
  123.         F5              Save Snapshots (followed by 0..7)
  124.         F6              Enter Game Genie Codes
  125.         F7              Load Snapshots (followed by 0..7)
  126.         F10             Debugger
  127.         /               Switch between Screen Modes
  128.         Keypad +        Accelerator
  129.  
  130. The Joystick is emulated through the same code as Gameboy 97. This means
  131. it won't work on some Joysticks. For those of you with more esoteric
  132. Sticks, disable the Joystick support in TNES and use Simone Zanella's
  133. JoyEmu instead. This is also recommended if you want to remap the buttons,
  134. or anything complex. Note that the Joystick also slows things down, thanks
  135. to its 20p design. "No,just a resistor and a capacitor will do".
  136.  
  137. The Joystick is enabled by pressing the any of the buttons A B C or D
  138. on the Joystick, when it is centred (for a quick calibration).
  139.  
  140. Additional Information
  141. ======================
  142.  
  143. Generally - the timing could be better - some of the split screens
  144. don't work that well. I'm working on it... There are a few things which
  145. are hopeless - Ys1 & 2, and Chrystalis for example. I suspect this is
  146. also to do with unknown information about the Mappers.
  147.  
  148. The sound is all Adlib (OPL2) which means it sounds different to the
  149. standard NES - the tunes are the same but the instruments have changed -
  150. gives the NES a whole new sound. This is still in development, but on most
  151. games it sounds fine.
  152.  
  153. I have a 'Bomberman' cartridge which is very wierd - the title screen
  154. looks corrupted & if you press START it crashes.  To run it, press up then
  155. START. I presume this is corrupt, as this behaviour is also produced by
  156. Nesticle, except that unmapped memory locations in Nesticle contain 00 which
  157. generates a BRK which restarts the cartridge. TNES contain FF which
  158. causes the Debugger to be entered.
  159.  
  160. The following mappers are implemented : 0,1,2,3,4,7,9 and 11.
  161.  
  162. 1:      (e.g. Zelda,Zelda2) Work Ok, but Scrolling can be a bit dodgy,
  163.         especially Zelda 1 which has wierd vertical scrolling - still working
  164.         on this one. Because of timing problems there's a hack in Mapper 1
  165.         which delays NMI if a register write is incomplete. (e.g. the
  166.         bit-write to register is incomplete).  512k carts (e.g. Dragon
  167.         Warrior 3) are supported, 1Mb carts (DW4) are not, at present,
  168.         not unconnected with the fact that I don't know how they work
  169.         & haven't done any research yet. The only game that crashed was
  170.         "Bart vs. Space Mutants" which may be due to a corrupt image -
  171.         it looks bad on Nesticle. On TNES it stops at the start of the
  172.         game proper.
  173.  
  174. 4:      (e.g. SMB2 & 3) working reasonably well. SMB3 is a bit scruffy in
  175.         places but perfectly playable. SMB2 seems perfect. The emulation
  176.         of the IRQ handling is not 100% accurate, which I suspect causes
  177.         the SMB3 problems.
  178.  
  179. 7:      Marble Madness works - it requires the Interrupt to take place at
  180.         Scanline 0. Some of the graphics are still slightly corrupted, but
  181.         it looks much better with the NMI moved. [You'll need to set this
  182.         in TNES.INI]
  183.  
  184. 9:      (e.g. Punch-out) - this now works perfectly. If you want to know
  185.         how it's done you'll need the source code.... be prepared to laugh
  186.         at the incredible design decision. Is it really worth the effort, I
  187.         ask myself. Just for a few extra tiles with crap no-one reads.
  188.  
  189. 11:     (e.g. Mission Cobra) - works but I think the ROM may be corrupt, it's
  190.         fudged. This was the only cart of this type I could find.
  191.  
  192. The Debugger
  193. ------------
  194. The debugger is simple but functional. There are 3 windows - machine status
  195. disassembled program and data. The machine status is a bit incomprehensible
  196. unless you are familiar with the PPU.
  197.  
  198. The Alphanumeric keys change the address. To set the breakpoint address, use
  199. the Alt key. To set the Data Address, use the Ctrl Key. Changing the
  200. address in the 'disassembly' area does NOT change the program counter. At
  201. present it isn't possible to change the CPU registers.
  202.  
  203. 0-9,A-F                 Rotate address right,insert digit (Try it !)
  204. Up/Down/PUp/PDn         Move Up or Down by 1 or 16 bytes
  205. Home                    Set equal to PC
  206.  
  207. Debugger Function Keys
  208. ----------------------
  209. F1              Break = Disassembly Address
  210. F5              Display Current Screen
  211. F7              Run to current displayed program line.
  212. F8              Single Step
  213. F9              Run until Breakpoint
  214. ESC             Run normally (no Breakpoint)
  215.  
  216. Paul Robson, January 1998.
  217.